<?php
//   +----------------------------------------------------------------------
//   | Copyright (c) 2015-2025 http://www.hdphp.cn All rights reserved.
//   | Licensed ( http://www.hdphp.cn/licenses/ )
//   | Author: Jack <sophia2152@qq.com>
//   | 官方网址: http://www.hdphp.cn
//   | 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用。
//   | 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
//   +----------------------------------------------------------------------
namespace app\services\system\config;

use app\services\BaseServices;
use app\dao\system\config\SystemConfigTabDao;

/**
 * Class：系统配置分类服务
 * 创建人：Jack
 * 创建时间：2023/7/28 17:41
 * @package app\services\system\config
 * @mixin SystemConfigTabDao
 */
class SystemConfigTabServices extends BaseServices
{
    /**
     * 构造方法
     * SystemConfigTabServices constructor.
     * @param SystemConfigTabDao $dao
     */
    public function __construct(SystemConfigTabDao $dao)
    {
        $this->dao = $dao;
    }

    /**
     * 注释：获取配置分类列表
     * 创建人：Jack
     * 创建时间：2023/8/24 9:09
     * @param array $where
     * @return array
     */
    public function getConfgTabList(array $where)
    {
        [$page, $limit] = $this->getPageValue();
        $list = $this->dao->getConfgTabList($where, $page, $limit);
        $count = $this->dao->count($where);
        $menusValue = [];
        foreach ($list as $item) {
            $menusValue[] = $item->getData();
        }
        $list = get_tree_children($menusValue);
        return compact('list', 'count');
    }

    /**
     * 注释：获取配置分类选择下拉树
     * 创建人：Jack
     * 创建时间：2023/8/24 10:14
     * @return array|array[]
     */
    public function getSelectTreeList()
    {
        $menuList = $this->dao->getConfigTabAll([], ['id as value', 'pid', 'title as label']);
        $menus = [['value' => 0, 'label' => '顶级按钮']];
        $list = get_tree_children($menuList, 'children', 'value');
        $menus = array_merge($menus, $list);
//        foreach ($list as $menu) {
//            $menus[] = ['value' => $menu['id'], 'label' => $menu['html'] . $menu['title']];
//        }
        return $menus;
    }


}
